{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import warnings\n",
    "warnings.filterwarnings('ignore')\n",
    "import os"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# !pip install -U git+https://github.com/qubvel/efficientnet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "__file__ = 'EfficientNet-B5-9.8.8-01'\n",
    "__version__ = 'v11'\n",
    "fold = 0\n",
    "os.environ[\"CUDA_VISIBLE_DEVICES\"] = \"0,1\"\n",
    "n_gpus = len(os.environ[\"CUDA_VISIBLE_DEVICES\"].split(','))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "from keras.preprocessing.image import ImageDataGenerator\n",
    "from glob import glob\n",
    "import tensorflow as tf\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "import keras\n",
    "from keras.applications.inception_v3 import InceptionV3\n",
    "from keras.applications.xception import Xception\n",
    "from keras.applications.resnet50 import ResNet50\n",
    "from keras_applications.resnext import ResNeXt50\n",
    "from keras.applications.nasnet import NASNetLarge\n",
    "from keras.applications.inception_resnet_v2 import InceptionResNetV2\n",
    "from keras.models import *\n",
    "from keras.layers import *\n",
    "from keras.optimizers import *\n",
    "from keras.callbacks import *\n",
    "import PIL\n",
    "import time\n",
    "import efficientnet.keras as efn "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "path_data = '../garbage_classify/train_data_v2/'\n",
    "batch_size = 16 * n_gpus\n",
    "img_size = 456\n",
    "img_width = img_size\n",
    "img_height = img_size\n",
    "random_seed = 201908"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f9105992828>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "labels_train_raw = pd.read_csv(f'../tmp/labels_train_{__version__}_fold{fold}.csv')\n",
    "labels_train_ext = pd.read_csv(f'../tmp/labels_ext.csv')\n",
    "\n",
    "labels_train = pd.concat([labels_train_raw,labels_train_ext])\n",
    "\n",
    "labels_valid = pd.read_csv(f'../tmp/labels_valid_{__version__}_fold{fold}.csv')\n",
    "n_classess = labels_train.label.unique().shape[0]\n",
    "labels_train.groupby(by='label').count().plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "labels_train.label = labels_train.label.apply(lambda x: f'{x:02d}')\n",
    "labels_valid.label = labels_valid.label.apply(lambda x: f'{x:02d}')\n",
    "# labels_train['label_bin'].values = keras.utils.np_utils.to_categorical(\n",
    "#     labels_train.label, n_classess)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "({0: 0.9983668341708543,\n",
       "  1: 1.00088161209068,\n",
       "  2: 1.0401832460732985,\n",
       "  3: 3.0102272727272728,\n",
       "  4: 0.9219257540603248,\n",
       "  5: 1.1224576271186442,\n",
       "  6: 1.0511904761904762,\n",
       "  7: 1.1418103448275863,\n",
       "  8: 1.1006925207756233,\n",
       "  9: 0.9155529953917051,\n",
       "  10: 1.008502538071066,\n",
       "  11: 0.6228056426332288,\n",
       "  12: 1.0539787798408489,\n",
       "  13: 1.0374673629242819,\n",
       "  14: 1.0596,\n",
       "  15: 0.9240697674418604,\n",
       "  16: 0.9574698795180723,\n",
       "  17: 0.5869276218611521,\n",
       "  18: 1.016240409207161,\n",
       "  19: 0.9283878504672897,\n",
       "  20: 1.6695378151260505,\n",
       "  21: 0.5767053701015965,\n",
       "  22: 1.0539787798408489,\n",
       "  23: 1.1256373937677053,\n",
       "  24: 1.10375,\n",
       "  25: 0.5930597014925373,\n",
       "  26: 1.076829268292683,\n",
       "  27: 0.8330188679245283,\n",
       "  28: 0.9835396039603961,\n",
       "  29: 1.0059493670886075,\n",
       "  30: 1.2340062111801242,\n",
       "  31: 1.062433155080214,\n",
       "  32: 1.204090909090909,\n",
       "  33: 1.2859223300970875,\n",
       "  34: 0.9071917808219178,\n",
       "  35: 1.045657894736842,\n",
       "  36: 1.8921428571428571,\n",
       "  37: 1.2614285714285713,\n",
       "  38: 1.0946280991735537,\n",
       "  39: 0.9983668341708543},\n",
       " <matplotlib.axes._subplots.AxesSubplot at 0x7f9208a9fcf8>)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.utils.class_weight import compute_class_weight\n",
    "class_weights = compute_class_weight('balanced', np.unique(labels_train.label), labels_train.label)\n",
    "d_class_weights = dict(enumerate(class_weights))\n",
    "d_class_weights,(labels_train.groupby(by='label').count()['fname'] * class_weights).plot()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Found 15894 validated image filenames belonging to 40 classes.\n",
      "Found 2944 validated image filenames belonging to 40 classes.\n"
     ]
    }
   ],
   "source": [
    "ig = ImageDataGenerator(preprocessing_function=efn.preprocess_input,\n",
    "                        width_shift_range=0.05,\n",
    "                        height_shift_range=0.05,\n",
    "                        brightness_range=(0.8, 1.4),\n",
    "                        horizontal_flip=True,\n",
    "                        vertical_flip=True)\n",
    "\n",
    "params_g = dict(\n",
    "    batch_size=batch_size,\n",
    "    # directory=path_data,\n",
    "    # class_mode='other',\n",
    "    x_col='fname',\n",
    "    y_col='label',\n",
    "    target_size=(img_width, img_height),\n",
    "    interpolation='lanczos',\n",
    "    seed=random_seed)\n",
    "\n",
    "train_g = ig.flow_from_dataframe(labels_train, path_data, **params_g)\n",
    "valid_g = ig.flow_from_dataframe(labels_valid[:-(labels_valid.shape[0] % batch_size)], path_data, shuffle=False, **params_g)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/op_def_library.py:263: colocate_with (from tensorflow.python.framework.ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Colocations handled automatically by placer.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/function.py:1007: calling Graph.create_op (from tensorflow.python.framework.ops) with compute_shapes is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Shapes are always computed; don't use the compute_shapes as it has no effect.\n",
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/keras/backend/tensorflow_backend.py:3445: calling dropout (from tensorflow.python.ops.nn_ops) with keep_prob is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Please use `rate` instead of `keep_prob`. Rate should be set to `rate = 1 - keep_prob`.\n"
     ]
    }
   ],
   "source": [
    "base_model = efn.EfficientNetB5(weights='imagenet', include_top=False, input_shape=(img_width, img_height, 3),pooling='avg')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 input_1\n",
      "1 stem_conv\n",
      "2 stem_bn\n",
      "3 stem_activation\n",
      "4 block1a_dwconv\n",
      "5 block1a_bn\n",
      "6 block1a_activation\n",
      "7 block1a_se_squeeze\n",
      "8 block1a_se_reshape\n",
      "9 block1a_se_reduce\n",
      "10 block1a_se_expand\n",
      "11 block1a_se_excite\n",
      "12 block1a_project_conv\n",
      "13 block1a_project_bn\n",
      "14 block1b_dwconv\n",
      "15 block1b_bn\n",
      "16 block1b_activation\n",
      "17 block1b_se_squeeze\n",
      "18 block1b_se_reshape\n",
      "19 block1b_se_reduce\n",
      "20 block1b_se_expand\n",
      "21 block1b_se_excite\n",
      "22 block1b_project_conv\n",
      "23 block1b_project_bn\n",
      "24 block1b_drop\n",
      "25 block1b_add\n",
      "26 block1c_dwconv\n",
      "27 block1c_bn\n",
      "28 block1c_activation\n",
      "29 block1c_se_squeeze\n",
      "30 block1c_se_reshape\n",
      "31 block1c_se_reduce\n",
      "32 block1c_se_expand\n",
      "33 block1c_se_excite\n",
      "34 block1c_project_conv\n",
      "35 block1c_project_bn\n",
      "36 block1c_drop\n",
      "37 block1c_add\n",
      "38 block2a_expand_conv\n",
      "39 block2a_expand_bn\n",
      "40 block2a_expand_activation\n",
      "41 block2a_dwconv\n",
      "42 block2a_bn\n",
      "43 block2a_activation\n",
      "44 block2a_se_squeeze\n",
      "45 block2a_se_reshape\n",
      "46 block2a_se_reduce\n",
      "47 block2a_se_expand\n",
      "48 block2a_se_excite\n",
      "49 block2a_project_conv\n",
      "50 block2a_project_bn\n",
      "51 block2b_expand_conv\n",
      "52 block2b_expand_bn\n",
      "53 block2b_expand_activation\n",
      "54 block2b_dwconv\n",
      "55 block2b_bn\n",
      "56 block2b_activation\n",
      "57 block2b_se_squeeze\n",
      "58 block2b_se_reshape\n",
      "59 block2b_se_reduce\n",
      "60 block2b_se_expand\n",
      "61 block2b_se_excite\n",
      "62 block2b_project_conv\n",
      "63 block2b_project_bn\n",
      "64 block2b_drop\n",
      "65 block2b_add\n",
      "66 block2c_expand_conv\n",
      "67 block2c_expand_bn\n",
      "68 block2c_expand_activation\n",
      "69 block2c_dwconv\n",
      "70 block2c_bn\n",
      "71 block2c_activation\n",
      "72 block2c_se_squeeze\n",
      "73 block2c_se_reshape\n",
      "74 block2c_se_reduce\n",
      "75 block2c_se_expand\n",
      "76 block2c_se_excite\n",
      "77 block2c_project_conv\n",
      "78 block2c_project_bn\n",
      "79 block2c_drop\n",
      "80 block2c_add\n",
      "81 block2d_expand_conv\n",
      "82 block2d_expand_bn\n",
      "83 block2d_expand_activation\n",
      "84 block2d_dwconv\n",
      "85 block2d_bn\n",
      "86 block2d_activation\n",
      "87 block2d_se_squeeze\n",
      "88 block2d_se_reshape\n",
      "89 block2d_se_reduce\n",
      "90 block2d_se_expand\n",
      "91 block2d_se_excite\n",
      "92 block2d_project_conv\n",
      "93 block2d_project_bn\n",
      "94 block2d_drop\n",
      "95 block2d_add\n",
      "96 block2e_expand_conv\n",
      "97 block2e_expand_bn\n",
      "98 block2e_expand_activation\n",
      "99 block2e_dwconv\n",
      "100 block2e_bn\n",
      "101 block2e_activation\n",
      "102 block2e_se_squeeze\n",
      "103 block2e_se_reshape\n",
      "104 block2e_se_reduce\n",
      "105 block2e_se_expand\n",
      "106 block2e_se_excite\n",
      "107 block2e_project_conv\n",
      "108 block2e_project_bn\n",
      "109 block2e_drop\n",
      "110 block2e_add\n",
      "111 block3a_expand_conv\n",
      "112 block3a_expand_bn\n",
      "113 block3a_expand_activation\n",
      "114 block3a_dwconv\n",
      "115 block3a_bn\n",
      "116 block3a_activation\n",
      "117 block3a_se_squeeze\n",
      "118 block3a_se_reshape\n",
      "119 block3a_se_reduce\n",
      "120 block3a_se_expand\n",
      "121 block3a_se_excite\n",
      "122 block3a_project_conv\n",
      "123 block3a_project_bn\n",
      "124 block3b_expand_conv\n",
      "125 block3b_expand_bn\n",
      "126 block3b_expand_activation\n",
      "127 block3b_dwconv\n",
      "128 block3b_bn\n",
      "129 block3b_activation\n",
      "130 block3b_se_squeeze\n",
      "131 block3b_se_reshape\n",
      "132 block3b_se_reduce\n",
      "133 block3b_se_expand\n",
      "134 block3b_se_excite\n",
      "135 block3b_project_conv\n",
      "136 block3b_project_bn\n",
      "137 block3b_drop\n",
      "138 block3b_add\n",
      "139 block3c_expand_conv\n",
      "140 block3c_expand_bn\n",
      "141 block3c_expand_activation\n",
      "142 block3c_dwconv\n",
      "143 block3c_bn\n",
      "144 block3c_activation\n",
      "145 block3c_se_squeeze\n",
      "146 block3c_se_reshape\n",
      "147 block3c_se_reduce\n",
      "148 block3c_se_expand\n",
      "149 block3c_se_excite\n",
      "150 block3c_project_conv\n",
      "151 block3c_project_bn\n",
      "152 block3c_drop\n",
      "153 block3c_add\n",
      "154 block3d_expand_conv\n",
      "155 block3d_expand_bn\n",
      "156 block3d_expand_activation\n",
      "157 block3d_dwconv\n",
      "158 block3d_bn\n",
      "159 block3d_activation\n",
      "160 block3d_se_squeeze\n",
      "161 block3d_se_reshape\n",
      "162 block3d_se_reduce\n",
      "163 block3d_se_expand\n",
      "164 block3d_se_excite\n",
      "165 block3d_project_conv\n",
      "166 block3d_project_bn\n",
      "167 block3d_drop\n",
      "168 block3d_add\n",
      "169 block3e_expand_conv\n",
      "170 block3e_expand_bn\n",
      "171 block3e_expand_activation\n",
      "172 block3e_dwconv\n",
      "173 block3e_bn\n",
      "174 block3e_activation\n",
      "175 block3e_se_squeeze\n",
      "176 block3e_se_reshape\n",
      "177 block3e_se_reduce\n",
      "178 block3e_se_expand\n",
      "179 block3e_se_excite\n",
      "180 block3e_project_conv\n",
      "181 block3e_project_bn\n",
      "182 block3e_drop\n",
      "183 block3e_add\n",
      "184 block4a_expand_conv\n",
      "185 block4a_expand_bn\n",
      "186 block4a_expand_activation\n",
      "187 block4a_dwconv\n",
      "188 block4a_bn\n",
      "189 block4a_activation\n",
      "190 block4a_se_squeeze\n",
      "191 block4a_se_reshape\n",
      "192 block4a_se_reduce\n",
      "193 block4a_se_expand\n",
      "194 block4a_se_excite\n",
      "195 block4a_project_conv\n",
      "196 block4a_project_bn\n",
      "197 block4b_expand_conv\n",
      "198 block4b_expand_bn\n",
      "199 block4b_expand_activation\n",
      "200 block4b_dwconv\n",
      "201 block4b_bn\n",
      "202 block4b_activation\n",
      "203 block4b_se_squeeze\n",
      "204 block4b_se_reshape\n",
      "205 block4b_se_reduce\n",
      "206 block4b_se_expand\n",
      "207 block4b_se_excite\n",
      "208 block4b_project_conv\n",
      "209 block4b_project_bn\n",
      "210 block4b_drop\n",
      "211 block4b_add\n",
      "212 block4c_expand_conv\n",
      "213 block4c_expand_bn\n",
      "214 block4c_expand_activation\n",
      "215 block4c_dwconv\n",
      "216 block4c_bn\n",
      "217 block4c_activation\n",
      "218 block4c_se_squeeze\n",
      "219 block4c_se_reshape\n",
      "220 block4c_se_reduce\n",
      "221 block4c_se_expand\n",
      "222 block4c_se_excite\n",
      "223 block4c_project_conv\n",
      "224 block4c_project_bn\n",
      "225 block4c_drop\n",
      "226 block4c_add\n",
      "227 block4d_expand_conv\n",
      "228 block4d_expand_bn\n",
      "229 block4d_expand_activation\n",
      "230 block4d_dwconv\n",
      "231 block4d_bn\n",
      "232 block4d_activation\n",
      "233 block4d_se_squeeze\n",
      "234 block4d_se_reshape\n",
      "235 block4d_se_reduce\n",
      "236 block4d_se_expand\n",
      "237 block4d_se_excite\n",
      "238 block4d_project_conv\n",
      "239 block4d_project_bn\n",
      "240 block4d_drop\n",
      "241 block4d_add\n",
      "242 block4e_expand_conv\n",
      "243 block4e_expand_bn\n",
      "244 block4e_expand_activation\n",
      "245 block4e_dwconv\n",
      "246 block4e_bn\n",
      "247 block4e_activation\n",
      "248 block4e_se_squeeze\n",
      "249 block4e_se_reshape\n",
      "250 block4e_se_reduce\n",
      "251 block4e_se_expand\n",
      "252 block4e_se_excite\n",
      "253 block4e_project_conv\n",
      "254 block4e_project_bn\n",
      "255 block4e_drop\n",
      "256 block4e_add\n",
      "257 block4f_expand_conv\n",
      "258 block4f_expand_bn\n",
      "259 block4f_expand_activation\n",
      "260 block4f_dwconv\n",
      "261 block4f_bn\n",
      "262 block4f_activation\n",
      "263 block4f_se_squeeze\n",
      "264 block4f_se_reshape\n",
      "265 block4f_se_reduce\n",
      "266 block4f_se_expand\n",
      "267 block4f_se_excite\n",
      "268 block4f_project_conv\n",
      "269 block4f_project_bn\n",
      "270 block4f_drop\n",
      "271 block4f_add\n",
      "272 block4g_expand_conv\n",
      "273 block4g_expand_bn\n",
      "274 block4g_expand_activation\n",
      "275 block4g_dwconv\n",
      "276 block4g_bn\n",
      "277 block4g_activation\n",
      "278 block4g_se_squeeze\n",
      "279 block4g_se_reshape\n",
      "280 block4g_se_reduce\n",
      "281 block4g_se_expand\n",
      "282 block4g_se_excite\n",
      "283 block4g_project_conv\n",
      "284 block4g_project_bn\n",
      "285 block4g_drop\n",
      "286 block4g_add\n",
      "287 block5a_expand_conv\n",
      "288 block5a_expand_bn\n",
      "289 block5a_expand_activation\n",
      "290 block5a_dwconv\n",
      "291 block5a_bn\n",
      "292 block5a_activation\n",
      "293 block5a_se_squeeze\n",
      "294 block5a_se_reshape\n",
      "295 block5a_se_reduce\n",
      "296 block5a_se_expand\n",
      "297 block5a_se_excite\n",
      "298 block5a_project_conv\n",
      "299 block5a_project_bn\n",
      "300 block5b_expand_conv\n",
      "301 block5b_expand_bn\n",
      "302 block5b_expand_activation\n",
      "303 block5b_dwconv\n",
      "304 block5b_bn\n",
      "305 block5b_activation\n",
      "306 block5b_se_squeeze\n",
      "307 block5b_se_reshape\n",
      "308 block5b_se_reduce\n",
      "309 block5b_se_expand\n",
      "310 block5b_se_excite\n",
      "311 block5b_project_conv\n",
      "312 block5b_project_bn\n",
      "313 block5b_drop\n",
      "314 block5b_add\n",
      "315 block5c_expand_conv\n",
      "316 block5c_expand_bn\n",
      "317 block5c_expand_activation\n",
      "318 block5c_dwconv\n",
      "319 block5c_bn\n",
      "320 block5c_activation\n",
      "321 block5c_se_squeeze\n",
      "322 block5c_se_reshape\n",
      "323 block5c_se_reduce\n",
      "324 block5c_se_expand\n",
      "325 block5c_se_excite\n",
      "326 block5c_project_conv\n",
      "327 block5c_project_bn\n",
      "328 block5c_drop\n",
      "329 block5c_add\n",
      "330 block5d_expand_conv\n",
      "331 block5d_expand_bn\n",
      "332 block5d_expand_activation\n",
      "333 block5d_dwconv\n",
      "334 block5d_bn\n",
      "335 block5d_activation\n",
      "336 block5d_se_squeeze\n",
      "337 block5d_se_reshape\n",
      "338 block5d_se_reduce\n",
      "339 block5d_se_expand\n",
      "340 block5d_se_excite\n",
      "341 block5d_project_conv\n",
      "342 block5d_project_bn\n",
      "343 block5d_drop\n",
      "344 block5d_add\n",
      "345 block5e_expand_conv\n",
      "346 block5e_expand_bn\n",
      "347 block5e_expand_activation\n",
      "348 block5e_dwconv\n",
      "349 block5e_bn\n",
      "350 block5e_activation\n",
      "351 block5e_se_squeeze\n",
      "352 block5e_se_reshape\n",
      "353 block5e_se_reduce\n",
      "354 block5e_se_expand\n",
      "355 block5e_se_excite\n",
      "356 block5e_project_conv\n",
      "357 block5e_project_bn\n",
      "358 block5e_drop\n",
      "359 block5e_add\n",
      "360 block5f_expand_conv\n",
      "361 block5f_expand_bn\n",
      "362 block5f_expand_activation\n",
      "363 block5f_dwconv\n",
      "364 block5f_bn\n",
      "365 block5f_activation\n",
      "366 block5f_se_squeeze\n",
      "367 block5f_se_reshape\n",
      "368 block5f_se_reduce\n",
      "369 block5f_se_expand\n",
      "370 block5f_se_excite\n",
      "371 block5f_project_conv\n",
      "372 block5f_project_bn\n",
      "373 block5f_drop\n",
      "374 block5f_add\n",
      "375 block5g_expand_conv\n",
      "376 block5g_expand_bn\n",
      "377 block5g_expand_activation\n",
      "378 block5g_dwconv\n",
      "379 block5g_bn\n",
      "380 block5g_activation\n",
      "381 block5g_se_squeeze\n",
      "382 block5g_se_reshape\n",
      "383 block5g_se_reduce\n",
      "384 block5g_se_expand\n",
      "385 block5g_se_excite\n",
      "386 block5g_project_conv\n",
      "387 block5g_project_bn\n",
      "388 block5g_drop\n",
      "389 block5g_add\n",
      "390 block6a_expand_conv\n",
      "391 block6a_expand_bn\n",
      "392 block6a_expand_activation\n",
      "393 block6a_dwconv\n",
      "394 block6a_bn\n",
      "395 block6a_activation\n",
      "396 block6a_se_squeeze\n",
      "397 block6a_se_reshape\n",
      "398 block6a_se_reduce\n",
      "399 block6a_se_expand\n",
      "400 block6a_se_excite\n",
      "401 block6a_project_conv\n",
      "402 block6a_project_bn\n",
      "403 block6b_expand_conv\n",
      "404 block6b_expand_bn\n",
      "405 block6b_expand_activation\n",
      "406 block6b_dwconv\n",
      "407 block6b_bn\n",
      "408 block6b_activation\n",
      "409 block6b_se_squeeze\n",
      "410 block6b_se_reshape\n",
      "411 block6b_se_reduce\n",
      "412 block6b_se_expand\n",
      "413 block6b_se_excite\n",
      "414 block6b_project_conv\n",
      "415 block6b_project_bn\n",
      "416 block6b_drop\n",
      "417 block6b_add\n",
      "418 block6c_expand_conv\n",
      "419 block6c_expand_bn\n",
      "420 block6c_expand_activation\n",
      "421 block6c_dwconv\n",
      "422 block6c_bn\n",
      "423 block6c_activation\n",
      "424 block6c_se_squeeze\n",
      "425 block6c_se_reshape\n",
      "426 block6c_se_reduce\n",
      "427 block6c_se_expand\n",
      "428 block6c_se_excite\n",
      "429 block6c_project_conv\n",
      "430 block6c_project_bn\n",
      "431 block6c_drop\n",
      "432 block6c_add\n",
      "433 block6d_expand_conv\n",
      "434 block6d_expand_bn\n",
      "435 block6d_expand_activation\n",
      "436 block6d_dwconv\n",
      "437 block6d_bn\n",
      "438 block6d_activation\n",
      "439 block6d_se_squeeze\n",
      "440 block6d_se_reshape\n",
      "441 block6d_se_reduce\n",
      "442 block6d_se_expand\n",
      "443 block6d_se_excite\n",
      "444 block6d_project_conv\n",
      "445 block6d_project_bn\n",
      "446 block6d_drop\n",
      "447 block6d_add\n",
      "448 block6e_expand_conv\n",
      "449 block6e_expand_bn\n",
      "450 block6e_expand_activation\n",
      "451 block6e_dwconv\n",
      "452 block6e_bn\n",
      "453 block6e_activation\n",
      "454 block6e_se_squeeze\n",
      "455 block6e_se_reshape\n",
      "456 block6e_se_reduce\n",
      "457 block6e_se_expand\n",
      "458 block6e_se_excite\n",
      "459 block6e_project_conv\n",
      "460 block6e_project_bn\n",
      "461 block6e_drop\n",
      "462 block6e_add\n",
      "463 block6f_expand_conv\n",
      "464 block6f_expand_bn\n",
      "465 block6f_expand_activation\n",
      "466 block6f_dwconv\n",
      "467 block6f_bn\n",
      "468 block6f_activation\n",
      "469 block6f_se_squeeze\n",
      "470 block6f_se_reshape\n",
      "471 block6f_se_reduce\n",
      "472 block6f_se_expand\n",
      "473 block6f_se_excite\n",
      "474 block6f_project_conv\n",
      "475 block6f_project_bn\n",
      "476 block6f_drop\n",
      "477 block6f_add\n",
      "478 block6g_expand_conv\n",
      "479 block6g_expand_bn\n",
      "480 block6g_expand_activation\n",
      "481 block6g_dwconv\n",
      "482 block6g_bn\n",
      "483 block6g_activation\n",
      "484 block6g_se_squeeze\n",
      "485 block6g_se_reshape\n",
      "486 block6g_se_reduce\n",
      "487 block6g_se_expand\n",
      "488 block6g_se_excite\n",
      "489 block6g_project_conv\n",
      "490 block6g_project_bn\n",
      "491 block6g_drop\n",
      "492 block6g_add\n",
      "493 block6h_expand_conv\n",
      "494 block6h_expand_bn\n",
      "495 block6h_expand_activation\n",
      "496 block6h_dwconv\n",
      "497 block6h_bn\n",
      "498 block6h_activation\n",
      "499 block6h_se_squeeze\n",
      "500 block6h_se_reshape\n",
      "501 block6h_se_reduce\n",
      "502 block6h_se_expand\n",
      "503 block6h_se_excite\n",
      "504 block6h_project_conv\n",
      "505 block6h_project_bn\n",
      "506 block6h_drop\n",
      "507 block6h_add\n",
      "508 block6i_expand_conv\n",
      "509 block6i_expand_bn\n",
      "510 block6i_expand_activation\n",
      "511 block6i_dwconv\n",
      "512 block6i_bn\n",
      "513 block6i_activation\n",
      "514 block6i_se_squeeze\n",
      "515 block6i_se_reshape\n",
      "516 block6i_se_reduce\n",
      "517 block6i_se_expand\n",
      "518 block6i_se_excite\n",
      "519 block6i_project_conv\n",
      "520 block6i_project_bn\n",
      "521 block6i_drop\n",
      "522 block6i_add\n",
      "523 block7a_expand_conv\n",
      "524 block7a_expand_bn\n",
      "525 block7a_expand_activation\n",
      "526 block7a_dwconv\n",
      "527 block7a_bn\n",
      "528 block7a_activation\n",
      "529 block7a_se_squeeze\n",
      "530 block7a_se_reshape\n",
      "531 block7a_se_reduce\n",
      "532 block7a_se_expand\n",
      "533 block7a_se_excite\n",
      "534 block7a_project_conv\n",
      "535 block7a_project_bn\n",
      "536 block7b_expand_conv\n",
      "537 block7b_expand_bn\n",
      "538 block7b_expand_activation\n",
      "539 block7b_dwconv\n",
      "540 block7b_bn\n",
      "541 block7b_activation\n",
      "542 block7b_se_squeeze\n",
      "543 block7b_se_reshape\n",
      "544 block7b_se_reduce\n",
      "545 block7b_se_expand\n",
      "546 block7b_se_excite\n",
      "547 block7b_project_conv\n",
      "548 block7b_project_bn\n",
      "549 block7b_drop\n",
      "550 block7b_add\n",
      "551 block7c_expand_conv\n",
      "552 block7c_expand_bn\n",
      "553 block7c_expand_activation\n",
      "554 block7c_dwconv\n",
      "555 block7c_bn\n",
      "556 block7c_activation\n",
      "557 block7c_se_squeeze\n",
      "558 block7c_se_reshape\n",
      "559 block7c_se_reduce\n",
      "560 block7c_se_expand\n",
      "561 block7c_se_excite\n",
      "562 block7c_project_conv\n",
      "563 block7c_project_bn\n",
      "564 block7c_drop\n",
      "565 block7c_add\n",
      "566 top_conv\n",
      "567 top_bn\n",
      "568 top_activation\n",
      "569 avg_pool\n"
     ]
    }
   ],
   "source": [
    "for i, layer in enumerate(base_model.layers):\n",
    "    print(i, layer.name)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "for layer in base_model.layers[:287]:\n",
    "    layer.trainable=False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "__________________________________________________________________________________________________\n",
      "Layer (type)                    Output Shape         Param #     Connected to                     \n",
      "==================================================================================================\n",
      "input_1 (InputLayer)            (None, 456, 456, 3)  0                                            \n",
      "__________________________________________________________________________________________________\n",
      "stem_conv (Conv2D)              (None, 228, 228, 48) 1296        input_1[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "stem_bn (BatchNormalization)    (None, 228, 228, 48) 192         stem_conv[0][0]                  \n",
      "__________________________________________________________________________________________________\n",
      "stem_activation (Activation)    (None, 228, 228, 48) 0           stem_bn[0][0]                    \n",
      "__________________________________________________________________________________________________\n",
      "block1a_dwconv (DepthwiseConv2D (None, 228, 228, 48) 432         stem_activation[0][0]            \n",
      "__________________________________________________________________________________________________\n",
      "block1a_bn (BatchNormalization) (None, 228, 228, 48) 192         block1a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1a_activation (Activation) (None, 228, 228, 48) 0           block1a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_squeeze (GlobalAvera (None, 48)           0           block1a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reshape (Reshape)    (None, 1, 1, 48)     0           block1a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_reduce (Conv2D)      (None, 1, 1, 12)     588         block1a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_expand (Conv2D)      (None, 1, 1, 48)     624         block1a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_se_excite (Multiply)    (None, 228, 228, 48) 0           block1a_activation[0][0]         \n",
      "                                                                 block1a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_conv (Conv2D)   (None, 228, 228, 24) 1152        block1a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1a_project_bn (BatchNormal (None, 228, 228, 24) 96          block1a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_bn (BatchNormalization) (None, 228, 228, 24) 96          block1b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1b_activation (Activation) (None, 228, 228, 24) 0           block1b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_squeeze (GlobalAvera (None, 24)           0           block1b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_se_excite (Multiply)    (None, 228, 228, 24) 0           block1b_activation[0][0]         \n",
      "                                                                 block1b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1b_project_bn (BatchNormal (None, 228, 228, 24) 96          block1b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1b_drop (FixedDropout)     (None, 228, 228, 24) 0           block1b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1b_add (Add)               (None, 228, 228, 24) 0           block1b_drop[0][0]               \n",
      "                                                                 block1a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_dwconv (DepthwiseConv2D (None, 228, 228, 24) 216         block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block1c_bn (BatchNormalization) (None, 228, 228, 24) 96          block1c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block1c_activation (Activation) (None, 228, 228, 24) 0           block1c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_squeeze (GlobalAvera (None, 24)           0           block1c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_se_excite (Multiply)    (None, 228, 228, 24) 0           block1c_activation[0][0]         \n",
      "                                                                 block1c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_conv (Conv2D)   (None, 228, 228, 24) 576         block1c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block1c_project_bn (BatchNormal (None, 228, 228, 24) 96          block1c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block1c_drop (FixedDropout)     (None, 228, 228, 24) 0           block1c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block1c_add (Add)               (None, 228, 228, 24) 0           block1c_drop[0][0]               \n",
      "                                                                 block1b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_conv (Conv2D)    (None, 228, 228, 144 3456        block1c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_bn (BatchNormali (None, 228, 228, 144 576         block2a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2a_expand_activation (Acti (None, 228, 228, 144 0           block2a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_dwconv (DepthwiseConv2D (None, 114, 114, 144 1296        block2a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2a_bn (BatchNormalization) (None, 114, 114, 144 576         block2a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2a_activation (Activation) (None, 114, 114, 144 0           block2a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_squeeze (GlobalAvera (None, 144)          0           block2a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reshape (Reshape)    (None, 1, 1, 144)    0           block2a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_reduce (Conv2D)      (None, 1, 1, 6)      870         block2a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_expand (Conv2D)      (None, 1, 1, 144)    1008        block2a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_se_excite (Multiply)    (None, 114, 114, 144 0           block2a_activation[0][0]         \n",
      "                                                                 block2a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_conv (Conv2D)   (None, 114, 114, 40) 5760        block2a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2a_project_bn (BatchNormal (None, 114, 114, 40) 160         block2a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_bn (BatchNormali (None, 114, 114, 240 960         block2b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2b_expand_activation (Acti (None, 114, 114, 240 0           block2b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2b_bn (BatchNormalization) (None, 114, 114, 240 960         block2b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2b_activation (Activation) (None, 114, 114, 240 0           block2b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_squeeze (GlobalAvera (None, 240)          0           block2b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_se_excite (Multiply)    (None, 114, 114, 240 0           block2b_activation[0][0]         \n",
      "                                                                 block2b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2b_project_bn (BatchNormal (None, 114, 114, 40) 160         block2b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2b_drop (FixedDropout)     (None, 114, 114, 40) 0           block2b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2b_add (Add)               (None, 114, 114, 40) 0           block2b_drop[0][0]               \n",
      "                                                                 block2a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_bn (BatchNormali (None, 114, 114, 240 960         block2c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2c_expand_activation (Acti (None, 114, 114, 240 0           block2c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2c_bn (BatchNormalization) (None, 114, 114, 240 960         block2c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2c_activation (Activation) (None, 114, 114, 240 0           block2c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_squeeze (GlobalAvera (None, 240)          0           block2c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_se_excite (Multiply)    (None, 114, 114, 240 0           block2c_activation[0][0]         \n",
      "                                                                 block2c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2c_project_bn (BatchNormal (None, 114, 114, 40) 160         block2c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2c_drop (FixedDropout)     (None, 114, 114, 40) 0           block2c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2c_add (Add)               (None, 114, 114, 40) 0           block2c_drop[0][0]               \n",
      "                                                                 block2b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_bn (BatchNormali (None, 114, 114, 240 960         block2d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2d_expand_activation (Acti (None, 114, 114, 240 0           block2d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2d_bn (BatchNormalization) (None, 114, 114, 240 960         block2d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2d_activation (Activation) (None, 114, 114, 240 0           block2d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_squeeze (GlobalAvera (None, 240)          0           block2d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_se_excite (Multiply)    (None, 114, 114, 240 0           block2d_activation[0][0]         \n",
      "                                                                 block2d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2d_project_bn (BatchNormal (None, 114, 114, 40) 160         block2d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2d_drop (FixedDropout)     (None, 114, 114, 40) 0           block2d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2d_add (Add)               (None, 114, 114, 40) 0           block2d_drop[0][0]               \n",
      "                                                                 block2c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_bn (BatchNormali (None, 114, 114, 240 960         block2e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block2e_expand_activation (Acti (None, 114, 114, 240 0           block2e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_dwconv (DepthwiseConv2D (None, 114, 114, 240 2160        block2e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block2e_bn (BatchNormalization) (None, 114, 114, 240 960         block2e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block2e_activation (Activation) (None, 114, 114, 240 0           block2e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_squeeze (GlobalAvera (None, 240)          0           block2e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reshape (Reshape)    (None, 1, 1, 240)    0           block2e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block2e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block2e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_se_excite (Multiply)    (None, 114, 114, 240 0           block2e_activation[0][0]         \n",
      "                                                                 block2e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_conv (Conv2D)   (None, 114, 114, 40) 9600        block2e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block2e_project_bn (BatchNormal (None, 114, 114, 40) 160         block2e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block2e_drop (FixedDropout)     (None, 114, 114, 40) 0           block2e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block2e_add (Add)               (None, 114, 114, 40) 0           block2e_drop[0][0]               \n",
      "                                                                 block2d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_conv (Conv2D)    (None, 114, 114, 240 9600        block2e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_bn (BatchNormali (None, 114, 114, 240 960         block3a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3a_expand_activation (Acti (None, 114, 114, 240 0           block3a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_dwconv (DepthwiseConv2D (None, 57, 57, 240)  6000        block3a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3a_bn (BatchNormalization) (None, 57, 57, 240)  960         block3a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3a_activation (Activation) (None, 57, 57, 240)  0           block3a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_squeeze (GlobalAvera (None, 240)          0           block3a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reshape (Reshape)    (None, 1, 1, 240)    0           block3a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_reduce (Conv2D)      (None, 1, 1, 10)     2410        block3a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_expand (Conv2D)      (None, 1, 1, 240)    2640        block3a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_se_excite (Multiply)    (None, 57, 57, 240)  0           block3a_activation[0][0]         \n",
      "                                                                 block3a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_conv (Conv2D)   (None, 57, 57, 64)   15360       block3a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3a_project_bn (BatchNormal (None, 57, 57, 64)   256         block3a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3b_expand_activation (Acti (None, 57, 57, 384)  0           block3b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3b_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3b_activation (Activation) (None, 57, 57, 384)  0           block3b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_squeeze (GlobalAvera (None, 384)          0           block3b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_se_excite (Multiply)    (None, 57, 57, 384)  0           block3b_activation[0][0]         \n",
      "                                                                 block3b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3b_project_bn (BatchNormal (None, 57, 57, 64)   256         block3b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3b_drop (FixedDropout)     (None, 57, 57, 64)   0           block3b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3b_add (Add)               (None, 57, 57, 64)   0           block3b_drop[0][0]               \n",
      "                                                                 block3a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3c_expand_activation (Acti (None, 57, 57, 384)  0           block3c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3c_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3c_activation (Activation) (None, 57, 57, 384)  0           block3c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_squeeze (GlobalAvera (None, 384)          0           block3c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_se_excite (Multiply)    (None, 57, 57, 384)  0           block3c_activation[0][0]         \n",
      "                                                                 block3c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3c_project_bn (BatchNormal (None, 57, 57, 64)   256         block3c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3c_drop (FixedDropout)     (None, 57, 57, 64)   0           block3c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3c_add (Add)               (None, 57, 57, 64)   0           block3c_drop[0][0]               \n",
      "                                                                 block3b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3d_expand_activation (Acti (None, 57, 57, 384)  0           block3d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3d_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3d_activation (Activation) (None, 57, 57, 384)  0           block3d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_squeeze (GlobalAvera (None, 384)          0           block3d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_se_excite (Multiply)    (None, 57, 57, 384)  0           block3d_activation[0][0]         \n",
      "                                                                 block3d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3d_project_bn (BatchNormal (None, 57, 57, 64)   256         block3d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3d_drop (FixedDropout)     (None, 57, 57, 64)   0           block3d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3d_add (Add)               (None, 57, 57, 64)   0           block3d_drop[0][0]               \n",
      "                                                                 block3c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block3e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block3e_expand_activation (Acti (None, 57, 57, 384)  0           block3e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_dwconv (DepthwiseConv2D (None, 57, 57, 384)  9600        block3e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block3e_bn (BatchNormalization) (None, 57, 57, 384)  1536        block3e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block3e_activation (Activation) (None, 57, 57, 384)  0           block3e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_squeeze (GlobalAvera (None, 384)          0           block3e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reshape (Reshape)    (None, 1, 1, 384)    0           block3e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block3e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block3e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_se_excite (Multiply)    (None, 57, 57, 384)  0           block3e_activation[0][0]         \n",
      "                                                                 block3e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_conv (Conv2D)   (None, 57, 57, 64)   24576       block3e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block3e_project_bn (BatchNormal (None, 57, 57, 64)   256         block3e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block3e_drop (FixedDropout)     (None, 57, 57, 64)   0           block3e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block3e_add (Add)               (None, 57, 57, 64)   0           block3e_drop[0][0]               \n",
      "                                                                 block3d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_conv (Conv2D)    (None, 57, 57, 384)  24576       block3e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_bn (BatchNormali (None, 57, 57, 384)  1536        block4a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4a_expand_activation (Acti (None, 57, 57, 384)  0           block4a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_dwconv (DepthwiseConv2D (None, 29, 29, 384)  3456        block4a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4a_bn (BatchNormalization) (None, 29, 29, 384)  1536        block4a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4a_activation (Activation) (None, 29, 29, 384)  0           block4a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_squeeze (GlobalAvera (None, 384)          0           block4a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reshape (Reshape)    (None, 1, 1, 384)    0           block4a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_reduce (Conv2D)      (None, 1, 1, 16)     6160        block4a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_expand (Conv2D)      (None, 1, 1, 384)    6528        block4a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_se_excite (Multiply)    (None, 29, 29, 384)  0           block4a_activation[0][0]         \n",
      "                                                                 block4a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_conv (Conv2D)   (None, 29, 29, 128)  49152       block4a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4a_project_bn (BatchNormal (None, 29, 29, 128)  512         block4a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4b_expand_activation (Acti (None, 29, 29, 768)  0           block4b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4b_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4b_activation (Activation) (None, 29, 29, 768)  0           block4b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_squeeze (GlobalAvera (None, 768)          0           block4b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_se_excite (Multiply)    (None, 29, 29, 768)  0           block4b_activation[0][0]         \n",
      "                                                                 block4b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4b_project_bn (BatchNormal (None, 29, 29, 128)  512         block4b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4b_drop (FixedDropout)     (None, 29, 29, 128)  0           block4b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4b_add (Add)               (None, 29, 29, 128)  0           block4b_drop[0][0]               \n",
      "                                                                 block4a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4c_expand_activation (Acti (None, 29, 29, 768)  0           block4c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4c_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4c_activation (Activation) (None, 29, 29, 768)  0           block4c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_squeeze (GlobalAvera (None, 768)          0           block4c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_se_excite (Multiply)    (None, 29, 29, 768)  0           block4c_activation[0][0]         \n",
      "                                                                 block4c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4c_project_bn (BatchNormal (None, 29, 29, 128)  512         block4c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4c_drop (FixedDropout)     (None, 29, 29, 128)  0           block4c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4c_add (Add)               (None, 29, 29, 128)  0           block4c_drop[0][0]               \n",
      "                                                                 block4b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4d_expand_activation (Acti (None, 29, 29, 768)  0           block4d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4d_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4d_activation (Activation) (None, 29, 29, 768)  0           block4d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_squeeze (GlobalAvera (None, 768)          0           block4d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_se_excite (Multiply)    (None, 29, 29, 768)  0           block4d_activation[0][0]         \n",
      "                                                                 block4d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4d_project_bn (BatchNormal (None, 29, 29, 128)  512         block4d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4d_drop (FixedDropout)     (None, 29, 29, 128)  0           block4d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4d_add (Add)               (None, 29, 29, 128)  0           block4d_drop[0][0]               \n",
      "                                                                 block4c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4e_expand_activation (Acti (None, 29, 29, 768)  0           block4e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4e_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4e_activation (Activation) (None, 29, 29, 768)  0           block4e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_squeeze (GlobalAvera (None, 768)          0           block4e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_se_excite (Multiply)    (None, 29, 29, 768)  0           block4e_activation[0][0]         \n",
      "                                                                 block4e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4e_project_bn (BatchNormal (None, 29, 29, 128)  512         block4e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4e_drop (FixedDropout)     (None, 29, 29, 128)  0           block4e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4e_add (Add)               (None, 29, 29, 128)  0           block4e_drop[0][0]               \n",
      "                                                                 block4d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4f_expand_activation (Acti (None, 29, 29, 768)  0           block4f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4f_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4f_activation (Activation) (None, 29, 29, 768)  0           block4f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_squeeze (GlobalAvera (None, 768)          0           block4f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_se_excite (Multiply)    (None, 29, 29, 768)  0           block4f_activation[0][0]         \n",
      "                                                                 block4f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4f_project_bn (BatchNormal (None, 29, 29, 128)  512         block4f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4f_drop (FixedDropout)     (None, 29, 29, 128)  0           block4f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4f_add (Add)               (None, 29, 29, 128)  0           block4f_drop[0][0]               \n",
      "                                                                 block4e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block4g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block4g_expand_activation (Acti (None, 29, 29, 768)  0           block4g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_dwconv (DepthwiseConv2D (None, 29, 29, 768)  6912        block4g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block4g_bn (BatchNormalization) (None, 29, 29, 768)  3072        block4g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block4g_activation (Activation) (None, 29, 29, 768)  0           block4g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_squeeze (GlobalAvera (None, 768)          0           block4g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reshape (Reshape)    (None, 1, 1, 768)    0           block4g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block4g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block4g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_se_excite (Multiply)    (None, 29, 29, 768)  0           block4g_activation[0][0]         \n",
      "                                                                 block4g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_conv (Conv2D)   (None, 29, 29, 128)  98304       block4g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block4g_project_bn (BatchNormal (None, 29, 29, 128)  512         block4g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block4g_drop (FixedDropout)     (None, 29, 29, 128)  0           block4g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block4g_add (Add)               (None, 29, 29, 128)  0           block4g_drop[0][0]               \n",
      "                                                                 block4f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_conv (Conv2D)    (None, 29, 29, 768)  98304       block4g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_bn (BatchNormali (None, 29, 29, 768)  3072        block5a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5a_expand_activation (Acti (None, 29, 29, 768)  0           block5a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_dwconv (DepthwiseConv2D (None, 29, 29, 768)  19200       block5a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5a_bn (BatchNormalization) (None, 29, 29, 768)  3072        block5a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5a_activation (Activation) (None, 29, 29, 768)  0           block5a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_squeeze (GlobalAvera (None, 768)          0           block5a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reshape (Reshape)    (None, 1, 1, 768)    0           block5a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_reduce (Conv2D)      (None, 1, 1, 32)     24608       block5a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_expand (Conv2D)      (None, 1, 1, 768)    25344       block5a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_se_excite (Multiply)    (None, 29, 29, 768)  0           block5a_activation[0][0]         \n",
      "                                                                 block5a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_conv (Conv2D)   (None, 29, 29, 176)  135168      block5a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5a_project_bn (BatchNormal (None, 29, 29, 176)  704         block5a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5b_expand_activation (Acti (None, 29, 29, 1056) 0           block5b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5b_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5b_activation (Activation) (None, 29, 29, 1056) 0           block5b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_squeeze (GlobalAvera (None, 1056)         0           block5b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5b_activation[0][0]         \n",
      "                                                                 block5b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5b_project_bn (BatchNormal (None, 29, 29, 176)  704         block5b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5b_drop (FixedDropout)     (None, 29, 29, 176)  0           block5b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5b_add (Add)               (None, 29, 29, 176)  0           block5b_drop[0][0]               \n",
      "                                                                 block5a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5c_expand_activation (Acti (None, 29, 29, 1056) 0           block5c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5c_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5c_activation (Activation) (None, 29, 29, 1056) 0           block5c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_squeeze (GlobalAvera (None, 1056)         0           block5c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5c_activation[0][0]         \n",
      "                                                                 block5c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5c_project_bn (BatchNormal (None, 29, 29, 176)  704         block5c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5c_drop (FixedDropout)     (None, 29, 29, 176)  0           block5c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5c_add (Add)               (None, 29, 29, 176)  0           block5c_drop[0][0]               \n",
      "                                                                 block5b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5d_expand_activation (Acti (None, 29, 29, 1056) 0           block5d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5d_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5d_activation (Activation) (None, 29, 29, 1056) 0           block5d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_squeeze (GlobalAvera (None, 1056)         0           block5d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5d_activation[0][0]         \n",
      "                                                                 block5d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5d_project_bn (BatchNormal (None, 29, 29, 176)  704         block5d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5d_drop (FixedDropout)     (None, 29, 29, 176)  0           block5d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5d_add (Add)               (None, 29, 29, 176)  0           block5d_drop[0][0]               \n",
      "                                                                 block5c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5e_expand_activation (Acti (None, 29, 29, 1056) 0           block5e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5e_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5e_activation (Activation) (None, 29, 29, 1056) 0           block5e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_squeeze (GlobalAvera (None, 1056)         0           block5e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5e_activation[0][0]         \n",
      "                                                                 block5e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5e_project_bn (BatchNormal (None, 29, 29, 176)  704         block5e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5e_drop (FixedDropout)     (None, 29, 29, 176)  0           block5e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5e_add (Add)               (None, 29, 29, 176)  0           block5e_drop[0][0]               \n",
      "                                                                 block5d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5f_expand_activation (Acti (None, 29, 29, 1056) 0           block5f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5f_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5f_activation (Activation) (None, 29, 29, 1056) 0           block5f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_squeeze (GlobalAvera (None, 1056)         0           block5f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5f_activation[0][0]         \n",
      "                                                                 block5f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5f_project_bn (BatchNormal (None, 29, 29, 176)  704         block5f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5f_drop (FixedDropout)     (None, 29, 29, 176)  0           block5f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5f_add (Add)               (None, 29, 29, 176)  0           block5f_drop[0][0]               \n",
      "                                                                 block5e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block5g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block5g_expand_activation (Acti (None, 29, 29, 1056) 0           block5g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_dwconv (DepthwiseConv2D (None, 29, 29, 1056) 26400       block5g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block5g_bn (BatchNormalization) (None, 29, 29, 1056) 4224        block5g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block5g_activation (Activation) (None, 29, 29, 1056) 0           block5g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_squeeze (GlobalAvera (None, 1056)         0           block5g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block5g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block5g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block5g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_se_excite (Multiply)    (None, 29, 29, 1056) 0           block5g_activation[0][0]         \n",
      "                                                                 block5g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_conv (Conv2D)   (None, 29, 29, 176)  185856      block5g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block5g_project_bn (BatchNormal (None, 29, 29, 176)  704         block5g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block5g_drop (FixedDropout)     (None, 29, 29, 176)  0           block5g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block5g_add (Add)               (None, 29, 29, 176)  0           block5g_drop[0][0]               \n",
      "                                                                 block5f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_conv (Conv2D)    (None, 29, 29, 1056) 185856      block5g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_bn (BatchNormali (None, 29, 29, 1056) 4224        block6a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6a_expand_activation (Acti (None, 29, 29, 1056) 0           block6a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_dwconv (DepthwiseConv2D (None, 15, 15, 1056) 26400       block6a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6a_bn (BatchNormalization) (None, 15, 15, 1056) 4224        block6a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6a_activation (Activation) (None, 15, 15, 1056) 0           block6a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_squeeze (GlobalAvera (None, 1056)         0           block6a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reshape (Reshape)    (None, 1, 1, 1056)   0           block6a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_reduce (Conv2D)      (None, 1, 1, 44)     46508       block6a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_expand (Conv2D)      (None, 1, 1, 1056)   47520       block6a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_se_excite (Multiply)    (None, 15, 15, 1056) 0           block6a_activation[0][0]         \n",
      "                                                                 block6a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_conv (Conv2D)   (None, 15, 15, 304)  321024      block6a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6a_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6b_expand_activation (Acti (None, 15, 15, 1824) 0           block6b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6b_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6b_activation (Activation) (None, 15, 15, 1824) 0           block6b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_squeeze (GlobalAvera (None, 1824)         0           block6b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6b_activation[0][0]         \n",
      "                                                                 block6b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6b_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6b_drop (FixedDropout)     (None, 15, 15, 304)  0           block6b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6b_add (Add)               (None, 15, 15, 304)  0           block6b_drop[0][0]               \n",
      "                                                                 block6a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6c_expand_activation (Acti (None, 15, 15, 1824) 0           block6c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6c_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6c_activation (Activation) (None, 15, 15, 1824) 0           block6c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_squeeze (GlobalAvera (None, 1824)         0           block6c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6c_activation[0][0]         \n",
      "                                                                 block6c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6c_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6c_drop (FixedDropout)     (None, 15, 15, 304)  0           block6c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6c_add (Add)               (None, 15, 15, 304)  0           block6c_drop[0][0]               \n",
      "                                                                 block6b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6d_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6d_expand_activation (Acti (None, 15, 15, 1824) 0           block6d_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6d_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6d_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6d_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6d_activation (Activation) (None, 15, 15, 1824) 0           block6d_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_squeeze (GlobalAvera (None, 1824)         0           block6d_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6d_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6d_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6d_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6d_activation[0][0]         \n",
      "                                                                 block6d_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6d_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6d_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6d_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6d_drop (FixedDropout)     (None, 15, 15, 304)  0           block6d_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6d_add (Add)               (None, 15, 15, 304)  0           block6d_drop[0][0]               \n",
      "                                                                 block6c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6e_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6e_expand_activation (Acti (None, 15, 15, 1824) 0           block6e_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6e_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6e_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6e_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6e_activation (Activation) (None, 15, 15, 1824) 0           block6e_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_squeeze (GlobalAvera (None, 1824)         0           block6e_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6e_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6e_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6e_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6e_activation[0][0]         \n",
      "                                                                 block6e_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6e_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6e_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6e_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6e_drop (FixedDropout)     (None, 15, 15, 304)  0           block6e_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6e_add (Add)               (None, 15, 15, 304)  0           block6e_drop[0][0]               \n",
      "                                                                 block6d_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6f_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6f_expand_activation (Acti (None, 15, 15, 1824) 0           block6f_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6f_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6f_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6f_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6f_activation (Activation) (None, 15, 15, 1824) 0           block6f_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_squeeze (GlobalAvera (None, 1824)         0           block6f_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6f_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6f_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6f_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6f_activation[0][0]         \n",
      "                                                                 block6f_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6f_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6f_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6f_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6f_drop (FixedDropout)     (None, 15, 15, 304)  0           block6f_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6f_add (Add)               (None, 15, 15, 304)  0           block6f_drop[0][0]               \n",
      "                                                                 block6e_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6g_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6g_expand_activation (Acti (None, 15, 15, 1824) 0           block6g_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6g_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6g_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6g_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6g_activation (Activation) (None, 15, 15, 1824) 0           block6g_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_squeeze (GlobalAvera (None, 1824)         0           block6g_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6g_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6g_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6g_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6g_activation[0][0]         \n",
      "                                                                 block6g_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6g_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6g_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6g_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6g_drop (FixedDropout)     (None, 15, 15, 304)  0           block6g_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6g_add (Add)               (None, 15, 15, 304)  0           block6g_drop[0][0]               \n",
      "                                                                 block6f_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6h_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6h_expand_activation (Acti (None, 15, 15, 1824) 0           block6h_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6h_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6h_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6h_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6h_activation (Activation) (None, 15, 15, 1824) 0           block6h_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_squeeze (GlobalAvera (None, 1824)         0           block6h_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6h_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6h_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6h_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6h_activation[0][0]         \n",
      "                                                                 block6h_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6h_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6h_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6h_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6h_drop (FixedDropout)     (None, 15, 15, 304)  0           block6h_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6h_add (Add)               (None, 15, 15, 304)  0           block6h_drop[0][0]               \n",
      "                                                                 block6g_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block6i_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block6i_expand_activation (Acti (None, 15, 15, 1824) 0           block6i_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 45600       block6i_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block6i_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block6i_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block6i_activation (Activation) (None, 15, 15, 1824) 0           block6i_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_squeeze (GlobalAvera (None, 1824)         0           block6i_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block6i_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block6i_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block6i_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_se_excite (Multiply)    (None, 15, 15, 1824) 0           block6i_activation[0][0]         \n",
      "                                                                 block6i_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_conv (Conv2D)   (None, 15, 15, 304)  554496      block6i_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block6i_project_bn (BatchNormal (None, 15, 15, 304)  1216        block6i_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block6i_drop (FixedDropout)     (None, 15, 15, 304)  0           block6i_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block6i_add (Add)               (None, 15, 15, 304)  0           block6i_drop[0][0]               \n",
      "                                                                 block6h_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_conv (Conv2D)    (None, 15, 15, 1824) 554496      block6i_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_bn (BatchNormali (None, 15, 15, 1824) 7296        block7a_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7a_expand_activation (Acti (None, 15, 15, 1824) 0           block7a_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_dwconv (DepthwiseConv2D (None, 15, 15, 1824) 16416       block7a_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7a_bn (BatchNormalization) (None, 15, 15, 1824) 7296        block7a_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7a_activation (Activation) (None, 15, 15, 1824) 0           block7a_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_squeeze (GlobalAvera (None, 1824)         0           block7a_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reshape (Reshape)    (None, 1, 1, 1824)   0           block7a_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_reduce (Conv2D)      (None, 1, 1, 76)     138700      block7a_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_expand (Conv2D)      (None, 1, 1, 1824)   140448      block7a_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_se_excite (Multiply)    (None, 15, 15, 1824) 0           block7a_activation[0][0]         \n",
      "                                                                 block7a_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_conv (Conv2D)   (None, 15, 15, 512)  933888      block7a_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7a_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7a_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7b_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7b_expand_activation (Acti (None, 15, 15, 3072) 0           block7b_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7b_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7b_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7b_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7b_activation (Activation) (None, 15, 15, 3072) 0           block7b_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_squeeze (GlobalAvera (None, 3072)         0           block7b_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7b_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7b_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7b_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7b_activation[0][0]         \n",
      "                                                                 block7b_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7b_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7b_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7b_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7b_drop (FixedDropout)     (None, 15, 15, 512)  0           block7b_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7b_add (Add)               (None, 15, 15, 512)  0           block7b_drop[0][0]               \n",
      "                                                                 block7a_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_conv (Conv2D)    (None, 15, 15, 3072) 1572864     block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_bn (BatchNormali (None, 15, 15, 3072) 12288       block7c_expand_conv[0][0]        \n",
      "__________________________________________________________________________________________________\n",
      "block7c_expand_activation (Acti (None, 15, 15, 3072) 0           block7c_expand_bn[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_dwconv (DepthwiseConv2D (None, 15, 15, 3072) 27648       block7c_expand_activation[0][0]  \n",
      "__________________________________________________________________________________________________\n",
      "block7c_bn (BatchNormalization) (None, 15, 15, 3072) 12288       block7c_dwconv[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "block7c_activation (Activation) (None, 15, 15, 3072) 0           block7c_bn[0][0]                 \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_squeeze (GlobalAvera (None, 3072)         0           block7c_activation[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reshape (Reshape)    (None, 1, 1, 3072)   0           block7c_se_squeeze[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_reduce (Conv2D)      (None, 1, 1, 128)    393344      block7c_se_reshape[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_expand (Conv2D)      (None, 1, 1, 3072)   396288      block7c_se_reduce[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_se_excite (Multiply)    (None, 15, 15, 3072) 0           block7c_activation[0][0]         \n",
      "                                                                 block7c_se_expand[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_conv (Conv2D)   (None, 15, 15, 512)  1572864     block7c_se_excite[0][0]          \n",
      "__________________________________________________________________________________________________\n",
      "block7c_project_bn (BatchNormal (None, 15, 15, 512)  2048        block7c_project_conv[0][0]       \n",
      "__________________________________________________________________________________________________\n",
      "block7c_drop (FixedDropout)     (None, 15, 15, 512)  0           block7c_project_bn[0][0]         \n",
      "__________________________________________________________________________________________________\n",
      "block7c_add (Add)               (None, 15, 15, 512)  0           block7c_drop[0][0]               \n",
      "                                                                 block7b_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_conv (Conv2D)               (None, 15, 15, 2048) 1048576     block7c_add[0][0]                \n",
      "__________________________________________________________________________________________________\n",
      "top_bn (BatchNormalization)     (None, 15, 15, 2048) 8192        top_conv[0][0]                   \n",
      "__________________________________________________________________________________________________\n",
      "top_activation (Activation)     (None, 15, 15, 2048) 0           top_bn[0][0]                     \n",
      "__________________________________________________________________________________________________\n",
      "avg_pool (GlobalAveragePooling2 (None, 2048)         0           top_activation[0][0]             \n",
      "__________________________________________________________________________________________________\n",
      "dense_1 (Dense)                 (None, 40)           81960       avg_pool[0][0]                   \n",
      "==================================================================================================\n",
      "Total params: 28,595,480\n",
      "Trainable params: 26,331,176\n",
      "Non-trainable params: 2,264,304\n",
      "__________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "x = base_model.output\n",
    "\n",
    "# x = Dense(128)(x)\n",
    "# x = BatchNormalization()(x)\n",
    "# x=Dropout(0.5)(x)\n",
    "\n",
    "DENSE_KERNEL_INITIALIZER = {\n",
    "    'class_name': 'VarianceScaling',\n",
    "    'config': {\n",
    "        'scale': 1. / 3.,\n",
    "        'mode': 'fan_out',\n",
    "        'distribution': 'uniform'\n",
    "    }\n",
    "}\n",
    "predictions = Dense(n_classess, activation='softmax',kernel_initializer=DENSE_KERNEL_INITIALIZER)(x)\n",
    "model = Model(inputs=base_model.input, outputs=predictions)\n",
    "model.summary()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "if n_gpus > 1:\n",
    "    from keras.utils import multi_gpu_model\n",
    "    model = multi_gpu_model(model,gpus=n_gpus)\n",
    "\n",
    "with open(f'../tmp/model_{__file__}.json','w') as f:\n",
    "    model_json = model.to_json()\n",
    "    f.write(model_json)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [],
   "source": [
    "ckpt = ModelCheckpoint('../tmp/ckpt-'+__file__+'-Epoch_{epoch:03d}-acc_{acc:.5f}-val_acc_{val_acc:.5f}.h5', save_best_only=True, monitor='val_acc',verbose=1)\n",
    "\n",
    "estop = EarlyStopping(monitor='val_acc', min_delta=1e-7,verbose=1, patience=20)\n",
    "\n",
    "reduce_lr = ReduceLROnPlateau(monitor='val_loss', factor=0.5,patience=3, min_lr=1e-5,verbose=1)\n",
    "\n",
    "csv_logger = CSVLogger(f'../tmp/training_{__file__}.log',append=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
      "Instructions for updating:\n",
      "Use tf.cast instead.\n",
      "Epoch 1/100\n",
      "496/496 [==============================] - 518s 1s/step - loss: 0.5816 - acc: 0.8738 - val_loss: 1.1202 - val_acc: 0.6929\n",
      "\n",
      "Epoch 00001: val_acc improved from -inf to 0.69293, saving model to ../tmp/ckpt-EfficientNet-B5-9.8.8-01-Epoch_001-acc_0.87380-val_acc_0.69293.h5\n",
      "Epoch 2/100\n",
      "176/496 [=========>....................] - ETA: 4:18 - loss: 0.2393 - acc: 0.9414"
     ]
    }
   ],
   "source": [
    "model.compile(optimizer=Adam(lr=1e-4), loss='categorical_crossentropy', metrics=['accuracy'])\n",
    "\n",
    "model.fit_generator(\n",
    "    train_g,\n",
    "    # steps_per_epoch=100,\n",
    "    steps_per_epoch=train_g.n // batch_size,\n",
    "    epochs=100,\n",
    "    class_weight=d_class_weights,\n",
    "    callbacks=[ckpt, estop,reduce_lr,csv_logger],\n",
    "    validation_data=valid_g,\n",
    "    # validation_steps=1,\n",
    "    workers=16,\n",
    "    use_multiprocessing=True,\n",
    "    validation_steps=valid_g.n // batch_size\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "!ls"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
